Automated testing of LLVM programs with complex input data structures

نویسندگان

چکیده

Symbolic execution is a widely used approach for automatic regression test generation and bug vulnerability finding. The main goal of this paper to present practical symbolic execution-based LLVM programs with complex input data structures. based on the well-known idea lazy initialization, which frees user from providing constraints structures manually. Thus, it provides us fully even program. Two initialization improvements are proposed segmented memory models: one timestamps type information. implemented in KLEE virtual machine platform tested real C — lists, binomial heaps, AVL trees, red-black binary tries.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Generating input data structures for automated program testing

Automatic test data generation usually concerns identifying input values that cause a selected path to execute. If a given path involves pointers, then input values may be represented in terms of 2-dimensional dynamic data structures such as lists or trees. When testing is conducted for programs in the presence of pointers, it is very important to identify a shape of the input data structure de...

متن کامل

Automatic Verification of Programs with Complex Data Structures

Although the software verification has made important progress during the last ten years, the verification of programs manipulating dynamic memory and complex data structures is still a challenge for the research in this domain. Automatic reasoning about the behaviours of such programs is a challenging problem because the classical techniques (static analysis or model checking) face big scalabi...

متن کامل

Automated Induction for Complex Data Structures

We propose a procedure for automated implicit inductive theorem proving for equational specifications made of rewrite rules with conditions and constraints. The constraints are interpreted over constructor terms (representing data values), and may express syntactic equality, disequality, ordering and also membership in a fixed tree language. Constrained equational axioms between constructor ter...

متن کامل

Automated Reasoning and Natural Proofs for Programs Manipulating Data Structures

We consider the problem of automatically verifying programs that manipulate a dynamic heap, maintaining complex and multiple data-structures, given modular pre-post conditions and loop invariants. We discuss specification logics for heaps, and discuss two classes of automatic procedures for reasoning with these logics. The first identifies fragments of logics that admit completely decidable rea...

متن کامل

Verification of Programs Manipulating Complex Dynamic Data Structures

We develop a verification method based on a novel use of tree automata to represent heap configurations to allow verification of important properties—such as no nullpointer dereferences, absence of memory leaks, etc.—for programs manipulating complex dynamically linked data structures. In our approach, a heap is split into several “separated” parts such that each of them can be represented by a...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

ژورنال

عنوان ژورنال: Trudy Instituta sistemnogo programmirovaniâ

سال: 2022

ISSN: ['2079-8156', '2220-6426']

DOI: https://doi.org/10.15514/ispras-2022-34(4)-4